Reputation: 3246
Anyone know's a way to describe a cash value or a plugin who does that ?
exp: if i have $ 1.200.000,00 and the user hover()
the value:
description will be "one million two hundred "
Thanks!
Upvotes: 9
Views: 25541
Reputation: 1761
Convert number to words
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("#p1").text(ConvertNumberToWords("1.99","rupees", "paisa"));
$("#p2").text(ConvertNumberToWords("999.99","rupees", "paisa"));
});
});
function ConvertNumberToWords(doubleNumber, mainAmountType, decimalAmountType) {
var beforeFloatingPoint = parseInt(doubleNumber.toString().split('.')[0]);
var beforeFloatingPointWord = NumberToWords(beforeFloatingPoint) + " " + (beforeFloatingPoint > 1 ? mainAmountType : mainAmountType.slice(0,-1));
var afterFloatingPoint = parseInt(doubleNumber.toString().includes('.') ? doubleNumber.toString().split('.')[1] : "0");
var afterFloatingPointWord = SmallNumberToWord(afterFloatingPoint, "") + " " + decimalAmountType + " only.";
if (afterFloatingPoint > 0) {
return beforeFloatingPointWord + " and " + afterFloatingPointWord;
}
else {
return beforeFloatingPointWord + " only";
}
}
function NumberToWords(number) {
if (number == 0)
return "zero";
if (number < 0)
return "minus " + NumberToWords(Math.abs(number));
var words = "";
if (number> 1000000000 && number / 1000000000 > 0) {
words += NumberToWords(Math.floor(number / 1000000000)) + " billion ";
number %= 1000000000;
}
if (number> 1000000 && number / 1000000 > 0) {
words += NumberToWords(Math.floor(number / 1000000)) + " million ";
number %= 1000000;
}
if (number> 1000 && number / 1000 > 0) {
words += NumberToWords(Math.floor(number / 1000)) + " thousand ";
number %= 1000;
}
if (number> 100 && number / 100 > 0) {
words += NumberToWords(Math.floor(number / 100)) + " hundred ";
number %= 100;
}
words = SmallNumberToWord(number, words);
return words;
}
function SmallNumberToWord(number, words) {
if (number <= 0) return words;
if (words != "")
words += "";
var unitsMap = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"];
var tensMap = ["zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"];
if (number < 20)
words += unitsMap[number];
else {
words += tensMap[Math.floor(number / 10)];
if ((number % 10) > 0)
words += " " + unitsMap[number % 10];
}
return words;
}
</script>
</head>
<body>
<h2>Convert number to words</h2>
<p id="p1">paragraph1: 1.99</p>
<p id="p2">paragraph2: 999.99</p>
<button>Click me to convert number to words </button>
</body>
</html>
Sample Examples Before convert
Upvotes: 1
Reputation:
you can add this code for number to word.if your field are coming dynamic.Just apply the class ".numtowordcls" on your input type
function getNumberToWord(thisObj){
var dataType=$(thisObj).attr("dir");
if(dataType!=null && dataType!="" ){
var value=$(thisObj).val();
if(dataType==='decimal' || dataType==='currency' || dataType==='number' || dataType==='emd' ){
if(value!=undefined && value.trim()!="" ){
if(isNaN(value)){
alert("Kindly Enter Valid Value For Filed Type '"+dataType+"'");
$(thisObj).val("");
$(thisObj).focus();
}else{
if(value!=undefined && value.trim()!=""){
if(!$.isNumeric(value)){
alert("Please Eneter Numeric value !!!");
$(this).val('');
return false;
}
var firstPart=value.toString().split(".")[0];
if(firstPart.length>14){
alert("Please Enter value upto 14 Digit !!!");
$(thisObj).val(value.substr(0,14));
$(thisObj).focus();
return false;
}
var secondPart=value.toString().split(".")[1];
if(secondPart!=undefined && secondPart!="" && secondPart.length>2){
alert("Decimal allowed upto 2 places !!!");
$(thisObj).val(value.substr(0,14));
$(thisObj).focus();
return false;
}
}
}
}
}
}
$(".numtowordcls").each(function(){
var id=$(this).attr("id");
var dirObj=$(this).attr("dir");
var dataArray=id.split("_");
var finalId=dataArray[0]+"_"+dataArray[1]+"_"+dirObj;
var fieldvalue=$("#"+finalId).val();
if(fieldvalue!=undefined && fieldvalue.trim()!=""){
var ntwidvalue=ntwidvalue+""+$(this).attr("id")+"~~~"+parseFloat(fieldvalue)+"~~~~";
}else{
$('#'+id).val("");
}
});
console.log("aaaa");
$('button').click(function(){
var input = $('input');
input.val('ntwidvalue');
input.trigger('input');
});
}
Upvotes: 0
Reputation: 1
Validation for text box allowing only one dot
if(!document.getElementById("per").value.match(/^[0-9]*\.?[0-9]*$/)) //"per" is the id text box
{
alert("Enter Correct Interest Rate");
return (false);
}
I hope this might help.
Upvotes: 0
Reputation: 6122
Here is a Javascript solution that's both compact and working well:
It can be used like this:
var words = toWords(num);
Upvotes: 1
Reputation: 76547
The following page mentions a very simple implementation:
which can perform the conversion by using this function:
var words = toWords(num);
Using jQuery, you can wrap this inside of your hover function, as shown below:
//This will add a tooltip upon hovering with the "word" value.
$('div').hover(function(){
$(this).attr('title',toWords($(this).text()));
});
Upvotes: 16
Reputation: 1264
Should check the source of this example, with some modification you should be able to achieve this:
http://abhisanoujam.blogspot.com/2009/07/having-fun-with-jquery-numbers-to-words.html
Upvotes: 2