我在 Vim 中处理数字时仍然遇到问题:
p.e.
let a = 1.02 | let b = '10000000' | let total = a*b | echo total --> 1.02e7
我想避免指数。 我怎样才能输出10200000?
let a = 4000000000 | let b = '1' | let total = a+b | echo total --> -294967295
为什么会给出错误的输出?
Tnx
最佳答案
:echo printf("%.0f", 4000000000.0 + 1.0)
注意事项:
- 您使用 string->int 转换来进行算术运算,这通常不是一件好事。
- 整数是机器字大小的,因此大数字会溢出,尤其是在 32 位机器上。
- float 格式通常使用%g,如果你想控制精度使用printf。
- 如果您要处理大量数字,请使用 float ,但如果您期望精确的精度,这确实不太好。
关于vim - 如何用数字解决这些问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10330760/