Design: Décimal/Type monétaire

Créé le 6 août 2017  ·  3Commentaires  ·  Source: WebAssembly/design

Il existe de nombreux bons documents WASM sur le type Float et son arithmétique, la partie fraction étant (basée sur 2) ^ (-1).

Pendant des années, les programmeurs ont utilisé des solutions de contournement dans JavaScript pour obtenir un calcul correct de la fraction décimale grâce au seul type flottant 64 bits pour tous les nombres.
Existe-t-il un plan pour prendre en charge le type __Money__ ou le type __Decimal__ ( Exemple 1 , Exemple 2 ) ?

Le type pratiquement décimal est important pour la plupart des applications métier. De nombreux langages, plates-formes et bases de données le prennent en charge.

Commentaire le plus utile

Je ne pense pas que l'OP demande la prise en charge de BCD mais plutôt la prise en charge de la virgule flottante décimale . En dehors de cela, je suis d'accord avec @jfbastien , nous devons nous méfier de prendre en charge quelque chose qui n'est pas fréquemment disponible dans le matériel. Selon la page Wikipedia que j'ai citée, seul le matériel IBM l'implémente jusqu'à présent. ISTR il y avait des rumeurs selon lesquelles Intel la poursuivait mais rien ne semble s'être matérialisé.

Intel semble proposer une bibliothèque d'émulation prétendument portable, donc vraisemblablement du C qui pourrait être compilé en Wasm. Je n'ai pas du tout examiné cela, pas même pour vérifier que ma présomption est correcte.

Tous les 3 commentaires

WebAssembly expose les fonctionnalités matérielles courantes lorsque ces fonctionnalités accélèrent les cas d'utilisation. Il n'expose en général rien d'autre : on s'attend à ce que des fonctionnalités utiles soient construites à l'aide de ces primitives.

Nous évaluerions donc la décimale codée en binaire comme suit :

  • Est-il largement disponible dans les ISA modernes ? Non. C'était dans l'ancien x86 et n'est pas disponible en mode long.
  • Est-ce plus rapide ? Un cas pourrait être fait que parfois, avoir l' intention exprimée (par exemple "effectuer un ajout BCD") peut conduire à un meilleur code car l'intention est autrement perdue et le compilateur ne peut pas la récupérer. Ce n'est pas clairement le cas ici, mais je suis prêt à être convaincu du contraire.

Notez que l'utilité d'une fonctionnalité n'est tout simplement pas pertinente pour cela. Si cela est utile, une bibliothèque peut être construite (ou mieux, une base de code C++ peut être compilée en WebAssembly). L'utilité et la présence d'un champion pour la fonctionnalité ne sont prises en compte que lorsque nous y parviendrons.

Je ne pense pas que l'OP demande la prise en charge de BCD mais plutôt la prise en charge de la virgule flottante décimale . En dehors de cela, je suis d'accord avec @jfbastien , nous devons nous méfier de prendre en charge quelque chose qui n'est pas fréquemment disponible dans le matériel. Selon la page Wikipedia que j'ai citée, seul le matériel IBM l'implémente jusqu'à présent. ISTR il y avait des rumeurs selon lesquelles Intel la poursuivait mais rien ne semble s'être matérialisé.

Intel semble proposer une bibliothèque d'émulation prétendument portable, donc vraisemblablement du C qui pourrait être compilé en Wasm. Je n'ai pas du tout examiné cela, pas même pour vérifier que ma présomption est correcte.

Merci @jfbastien et @lars-t-hansen pour les réponses.

Maintenant, il est clair que ce problème n'est pas lié à WASM et devrait être adressé à un autre groupe.

Une bibliothèque peut résoudre ce problème.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

cretz picture cretz  ·  5Commentaires

Thaina picture Thaina  ·  8Commentaires

aaabbbcccddd00001111 picture aaabbbcccddd00001111  ·  3Commentaires

JimmyVV picture JimmyVV  ·  4Commentaires

dpw picture dpw  ·  3Commentaires