vim - 如何用数字解决这些问题?

标签 vim floating-point numbers integer exponential

我在 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/

相关文章:

vim - 如何将标记移到屏幕中间?

vim - 如何更改 VIM 下划线颜色

javascript - 在 Javascript 中使用高数值的奇怪行为

ruby - 查找数组中的所有子集

python - ndarray 可以存储日期时间和 float 吗?

python - 如何从字符串中提取简单的数字表达式数字?

vim - 将 <leader> 与 :normal 一起使用

vim - 在 gVim 中使用 Vim 警告样式

c - 使用 C read() 从 stdin 读取 double

c++ - 如何计算每次读入一个字符的个数?