Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 计算浮点时如何使用整数 totalPrice::Product->Integer->Float totalPrice product x=产品的案例 拉面 |x2*x |x 1.8*x |x 1.5*x |x 1.4*x |x>200->1.35*x |否则->0 炸薯条 |x3*x |x2.95*x |x2.7*x |x 2.5*x |x>20->2.35*x |否则->0_Haskell - Fatal编程技术网

Haskell 计算浮点时如何使用整数 totalPrice::Product->Integer->Float totalPrice product x=产品的案例 拉面 |x2*x |x 1.8*x |x 1.5*x |x 1.4*x |x>200->1.35*x |否则->0 炸薯条 |x3*x |x2.95*x |x2.7*x |x 2.5*x |x>20->2.35*x |否则->0

Haskell 计算浮点时如何使用整数 totalPrice::Product->Integer->Float totalPrice product x=产品的案例 拉面 |x2*x |x 1.8*x |x 1.5*x |x 1.4*x |x>200->1.35*x |否则->0 炸薯条 |x3*x |x2.95*x |x2.7*x |x 2.5*x |x>20->2.35*x |否则->0,haskell,Haskell,当我编译这段代码时,它出现错误“无法将预期的类型“Double”与实际的类型“Integer”匹配” 有什么建议吗?x是一个整数,您将它与十进制值相乘,生成一个浮点值。像(*)这样的算术运算符的操作数和结果必须是相同的类型,并且必须在类型之间显式转换 totalPrice :: Product -> Integer -> Float totalPrice product x = case product of Ramen | x <= 10

当我编译这段代码时,它出现错误“无法将预期的类型“Double”与实际的类型“Integer”匹配”


有什么建议吗?

x
是一个
整数
,您将它与十进制值相乘,生成一个
浮点值。像
(*)
这样的算术运算符的操作数和结果必须是相同的类型,并且必须在类型之间显式转换

totalPrice :: Product -> Integer -> Float    
totalPrice product x = case product of  

    Ramen    
    | x <= 10 -> 2 * x    
    | x <= 30 -> 1.8 * x   
    | x <= 100 -> 1.5 * x   
    | x <= 200 -> 1.4 * x   
    | x > 200 -> 1.35 * x   
    | otherwise -> 0   

Chips
    | x <= 2 -> 3 * x
    | x <= 5 -> 2.95 * x
    | x <= 10 -> 2.7 * x
    | x <= 20 -> 2.5 * x
    | x > 20 -> 2.35 * x
    | otherwise -> 0
totalPrice产品y=产品的案例
拉面
|x2*x
...
哪里
x=整数y

x
是一个
整数
,您将其与十进制值相乘以产生一个
浮点值。像
(*)
这样的算术运算符的操作数和结果必须是相同的类型,并且必须在类型之间显式转换

totalPrice :: Product -> Integer -> Float    
totalPrice product x = case product of  

    Ramen    
    | x <= 10 -> 2 * x    
    | x <= 30 -> 1.8 * x   
    | x <= 100 -> 1.5 * x   
    | x <= 200 -> 1.4 * x   
    | x > 200 -> 1.35 * x   
    | otherwise -> 0   

Chips
    | x <= 2 -> 3 * x
    | x <= 5 -> 2.95 * x
    | x <= 10 -> 2.7 * x
    | x <= 20 -> 2.5 * x
    | x > 20 -> 2.35 * x
    | otherwise -> 0
totalPrice产品y=产品的案例
拉面
|x2*x
...
哪里
x=整数y

将代码粘贴为文本,并确保缩进代码。作为一项经验法则,帮助您决定在将来调试问题时应注意的事项:如果出现类型错误(“无法将预期类型…与实际类型…匹配”),通常意味着语法没有问题。在本例中,问题与防护装置或机箱无关,您只是使用了您的类型不支持的操作。如果您的guard或case语法有问题,Haskell将无法充分了解您试图执行的操作,甚至无法开始检查类型。请将代码粘贴为文本,并确保缩进代码。作为一项经验法则,帮助您确定在将来调试问题时应注意的事项:如果出现类型错误(“无法将预期类型…与实际类型匹配…”,这通常意味着您的语法没有问题。在本例中,问题与防护或案例无关,您只是使用了一个类型不支持的操作。如果您的防护或案例语法有问题,Haskell将无法充分了解您尝试执行的操作,甚至无法开始检查类型。Also、 使用浮动货币通常是危险的。我会说只使用整数个便士。同样,使用浮动货币通常是危险的。我会说只使用整数个便士。