【问题标题】:Convert Scientific notation to text or integer using regex in Notepad++在 Notepad++ 中使用正则表达式将科学记数法转换为文本或整数
【发布时间】:2012-12-05 15:47:35
【问题描述】:

我希望将科学计数法数字转换为完整的整数。

例如:

8.18234E+11 => 818234011668

Excel 在 csv 中重新格式化了我所有的 upc 代码,this 解决方案对我不起作用。

我在 Notepad++ 中打开了我的 csv,并希望使用正则表达式查找和替换来完成此操作。

谢谢。

【问题讨论】:

  • 正则表达式应该从哪里得到011668?注意有信息丢失。
  • @JanDvorak 不确定,excel 如何在两者之间转换?
  • 您是否可以访问 csv 或 excel 脚本?因为在这种情况下,您可以考虑更改其中的内容并将其视为字符而不是数字
  • @corsibu 是的,我在 excel 中打开了原始 csv,但是,如果我将列格式化为文本,它仍然显示为 sci notation?
  • @shnozolla 在 excel 中看到了什么值?圆角的还是正确的?

标签: regex notepad++ scientific-notation


【解决方案1】:

损坏已经造成,无法从 CSV 文件中恢复。 8.18234E+11 可以是从 818233500000818234499999 的任何东西*。

为防止 Excel 舍入大数字,您需要将它们存储为文本。如果将单元格格式设置为文本,则此后插入的任何值都应自动解释为文本。在 OpenOffice Calc(我没有 MS Excel)中,您还可以在数值前加上 ' 前缀,以将其解释为文本,无论单元格格式如何。

正确的值有可能存储在原始 XLS(或 XSLX 或 ODS 或实时 Excel 会话或...)文件中。如果没有,那么您将不得不再次输入数据。如果数据在那里,您需要将其存储为文本或增加导出的 CSV 中的有效位数。如果您只有导出的数据,那么您就不走运了。

*UPC 有一个校验位,因此 1 000 000 个代码中只有 100 000 个实际上是有效的 UPC 代码。

【讨论】:

  • 好的,谢谢 Jan,效果很好。一旦列格式更改为“文本”,我必须添加数据。我永远不会猜到。
猜你喜欢
  • 1970-01-01
  • 2019-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-03
  • 1970-01-01
  • 2018-09-24
  • 1970-01-01
相关资源
最近更新 更多