- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试学习 Haskell,但我陷入了数字转换的困境,有人可以解释一下为什么 Haskell 编译器对这段代码感到疯狂吗:
phimagic :: Int -> [Int]
phimagic x = x : (phimagic (round (x * 4.236068)))
它打印错误消息:
problem2.hs:25:33:
No instance for (RealFrac Int) arising from a use of `round'
Possible fix: add an instance declaration for (RealFrac Int)
In the first argument of `phimagic', namely
`(round (x * 4.236068))'
In the second argument of `(:)', namely
`(phimagic (round (x * 4.236068)))'
In the expression: x : (phimagic (round (x * 4.236068)))
problem2.hs:25:44:
No instance for (Fractional Int)
arising from the literal `4.236068'
Possible fix: add an instance declaration for (Fractional Int)
In the second argument of `(*)', namely `4.236068'
In the first argument of `round', namely `(x * 4.236068)'
In the first argument of `phimagic', namely
`(round (x * 4.236068))'
我已经在方法签名上尝试了多种组合(添加积分、分数、 double 等)。有些东西告诉我,文字 4.236068 与问题有关,但无法弄清楚。
最佳答案
Haskell 不会自动为您转换内容,因此 x * y
仅当 x
和 y
具有相同类型时才有效(您可以例如,不要将 Int
乘以 Double
)。
phimagic :: Int -> [Int]
phimagic x = x : phimagic (round (fromIntegral x * 4.236068))
请注意,我们可以使用 Prelude 函数 iterate
更自然地表达 phimagic
:
phimagic = iterate $ round . (4.236068 *) . fromIntegral
关于haskell - 将小数值舍入为 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19287818/
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我想知道如何将 UISilder 值舍入为 int 值。现在它正在显示花车。我目前正在使用 swift 3。 @IBOutlet var slidermove: UISlider!
我目前正在尝试编写一个程序,将“double”变量四舍五入到小数点后两位。 我有方法: DecimalFormat df = new DecimalFormat("#.00"); 但是,当我应用该方法
自学coding(这里是菜鸟),一道练习题答案如下: amount = (int) round (c); c 是一个 float 。可以肯定地说这一行通过舍入将 float 转换为整数吗?我尝试研究将
这个问题在这里已经有了答案: round() for float in C++ (23 个回答) 关闭2年前。 我有一个 double(称为 x),本来是 55,但实际上存储为 54.99999999
这是我目前拥有的: function getNearestMultipleOf(n, m) { return Math.round(n/m) * m; } console.log(getNea
我正在尝试模仿 Google 日历和 Outlook 处理时间选择的方式,其中所有时间条目相隔 30 分钟。除了一件事之外,我几乎所有的事情都与功能测试有关。我的问题是,我不知道如何确保始终将当前日期
这个问题已经有答案了: How to convert a double to long without casting? (9 个回答) 已关闭 9 年前。 java中有没有一种方法可以将double
我正在做一个学校项目,我必须将一个 float 写入一个文本文件。问题是我只想将最多 2 位小数的 float 写入文件。我在互联网上搜索了很多,但只找到了流的“setprecision”函数。 我不
我在 Highcharts 中创建了一个折线图,我希望最大值为 19。所以我找到了最大选项 yAxis: { max: 19; } 但 Highcharts 将最大值四舍五入为 20,我真的不想
我需要将一个浮点变量四舍五入到 2 位有效数字并将结果存储到一个新变量中(或者与之前相同,这无关紧要)但这是发生了什么: >>> a 981.32000000000005 >>> b= r
我想在 Python 中将指数 float 四舍五入为两位小数。 4.311237638482733e-91 --> 4.31e-91 你知道什么快速技巧吗? round(float, 2) 和 "%
我正在修改 Android 中的 BigDecimal 和货币格式,想知道是否可以使用 BigDecimal 执行以下操作: 我想要的: 64.99 --> 65.00 (Rounded Up)
这个问题在这里已经有了答案: How to round a number to n decimal places in Java (39 个回答) 关闭 8 个月前。 有人知道我如何将 double
有没有办法将python浮点数四舍五入到x个小数?例如: >>> x = roundfloat(66.66666666666, 4) 66.6667 >>> x = roundfloat(1.2957
我正在尝试将 BigDecimal 值向上舍入到小数点后两位。 我正在使用 BigDecimal rounded = value.round(new MathContext(2, RoundingMo
在阅读 Lua 的源代码时,我注意到 Lua 使用宏将 double 值四舍五入为 32 位 int 值。该宏在Llimits.h header file中定义,内容如下: union i_cast
我正在测试一个为产品提供 10% 折扣的系统,这意味着 102.555 折扣,但系统只使用 2 个小数位,因此它给出了 102.55强>. 问题是如果我执行这个: Math.Round(102.555
float = 11.0000123456789 我想将上面的 float 四舍五入为 11.00001235。因此,我希望 float 的基数部分四舍五入为 4 位数字,同时忽略并保留前导零并在末尾
如果有符号/无符号整数隐式转换为 float / double ,C++ 如何舍入? 喜欢: int myInt = SomeNumberWeCantExpressWithAFloat; float
我是一名优秀的程序员,十分优秀!