开发者

Visual basic handle decimal comma

I'm trying to save variables into text files and the Czech typographic rules drives me crazy. The program I'm tuning is dedicated to work on Czech localized computers where decimal comma is used but the VB is working with normal, standard decimal dot.

When loading files "US" decimals are loaded correctly and showed as Czech decimals. In TextBoxes "Czech" decimals are required. My problem is that program generates Czech decimals and require the "US" ones.

How can I force VB program to read comma as开发者_运维知识库 decimal sign instead of delimiter or how to export data with dots instead of commas?

Yes I can load 123,456 as a=123 and b=456 and then return value as a + b/1000 but is there more elegant solution?


Pick the right function.

  • Val, Str will always use US settings (dot as decimal)
  • CDbl, Format will take account of the regional settings.

It's all in the manual section on international programming.


Your trouble might be due to use of the Val function; that isn't international. The help text recommends the use of CDbl when converting from strings to numbers.


Thanks for your advices, I'm not sure if I did something wrong, but I've obtained only errors (ie. type mismatch) or "Czech" decimal comma.

I've tried 'Got slapped? Slap him harder!' aproach with this code:

Dim PpP As String, SaveFile As Integer

PpP = Form1.TxtA10.Text & " " & Form1.TxtA11.Text
PpP = Replace(PpP, ",", ".")
Print #SaveFile, PpP

edit:

something means trying those functions at the output, not at the input. (like trying Double as String parameter).

This code:

Input #1,TempString
Form1.TxtA10.Text = CDbl(TempString)

works aswell.


Try,

Format$(CDbl(Text1.Text), "#,##0.00")

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜