If your original C++ code uses doubles, then porting it to
TypeScript/JavaScript should be possible without loss of accuracy (and
using plain built-in Numbers, no external libraries). If you have a
reproducible counter-example, it would be interesting to hear about the
details.

The only exception I can think of is if your C++ compiler decided to emit
x87 FPU code (on x86 hardware) which would use 80 bits (instead of 64 bits)
for intermediate results. But I don't think modern compilers still do that;
they should emit 64-bit SSE instructions.

Side note: modern JavaScript has BigInts, which have arbitrary precision,
but only integer values. So they're probably not useful for your case, but
depending on what problem you're solving, you might be able to reformulate
it to use integers.


On Tue, Jun 25, 2019 at 2:19 PM Dan Elphick <[email protected]> wrote:

> On Tuesday, June 25, 2019 at 10:24:56 AM UTC+1, Jerry Jin wrote:
>>
>> Hello,
>> I'm new to v8-dev, sorry if this was already asked before.
>>
>> my problem is, i re-implemented a c++ numerical lib using typescript, and
>> some test cases failed due to float number not having enough accuracy
>> (i debugged js/c++ code side by side with chrome devtool&msvc)
>> right now, my only option is to user third party lib like `decimal.js`
>>
>> i wonder is there any way to increase float number accuracy like c++
>> double type?
>>
>
>> example, is there anyway to store more than 15 decimal places in number
>>
>
> Javascript and V8 already use doubles to represent floating point numbers.
> However double precision floating point numbers can have about 16
> significant figures, so it's not possible to get any more accuracy using
> C++ double. You may be able to print more than that (e.g. pi.ToFixed(30)
> but they won't be accurate beyond 15 decimal places.
>
>
>> ```
>> > let pi = 3.141592653589793238462643383280;
>> < undefined
>> > pi
>> < 3.141592653589793
>> ```
>>
>> not sure if this is possible in v8, if yes, where should i start?
>>
>> thanks!
>>
> --
> --
> v8-dev mailing list
> [email protected]
> http://groups.google.com/group/v8-dev
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/v8-dev/cfed0633-c6e7-45c4-a5c0-ca9f6cfaec9a%40googlegroups.com
> <https://groups.google.com/d/msgid/v8-dev/cfed0633-c6e7-45c4-a5c0-ca9f6cfaec9a%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-dev/CAKSzg3SkF4fpCBeMzLMqV7tAvT0bSuTWL2AM_-VoRwMWMdt1Cg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to