সংখ্যাটি 2 দশমিক স্থানে ফর্ম্যাট করুন


154

আমি জানতে চাই যে আমি কীভাবে মূল সংখ্যাকে গোল না করে 2 দশমিক স্থান নিয়ে কোনও সংখ্যা আউটপুট করতে পারি।

উদাহরণ স্বরূপ:

2229,999 -> 2229,99

আমি ইতিমধ্যে চেষ্টা করেছি:

FORMAT(2229.999, 2)
CONVERT(2229.999, DECIMAL(4,2))

দেখে মনে হচ্ছে আপনি কাটা কমান্ড ব্যবহার করার চেষ্টা করছেন। শুধু বিল্ট ইন ফানকেশিয়ালিটি ব্যবহার করবেন না কেন?
ফলানরেপার

দশমিক হওয়ার দরকার নেই DECIMAL(6,2))। 6- যথার্থতা (মোট অঙ্কের সংখ্যা) এবং 2 দশমিকের পরে অঙ্কের সংখ্যা?
ব্যবহারকারী5249203

উত্তর:


82

আপনি TRUNCATEকমান্ডটি ব্যবহার করতে চান ।

https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html#function_truncate


9
সর্বদা "রাউন্ড" ডাউন করুন un ১.৯৯৯ কে ২ ডিপি কেটে নেওয়া হবে ১.৯৯৯ যেখানে ২.০০ গাণিতিকভাবে আরও সঠিক হবে। যদি এটি কোনও সমস্যা না হয় তবে তা জরিমানা কেটে নেওয়া উচিত তবে আপনার এটি সম্পর্কে সচেতন হওয়া উচিত।
গর্ডনএম

আমি গর্ডনএম এর সাথে সম্মত হই এবং ট্রুনসেটটি বিশেষত ভাসমান পয়েন্ট সংখ্যাসমূহ সহ ধরণের সাথে ব্যবহার করা উচিত!
নেবুলোসার

364

সংখ্যাটি 2 দশমিক স্থানে ফর্ম্যাট করার সময় আপনার কাছে দুটি বিকল্প থাকে TRUNCATEএবং ROUND। আপনি TRUNCATEফাংশন খুঁজছেন ।

উদাহরণ:

গোল না করে:

TRUNCATE(0.166, 2)
-- will be evaluated to 0.16

TRUNCATE(0.164, 2)
-- will be evaluated to 0.16

দস্তাবেজ: http://www.w3resource.com/mysql/mathematical-funifications/mysql-truncate-function.php

বৃত্তাকার সহ:

ROUND(0.166, 2)
-- will be evaluated to 0.17

ROUND(0.164, 2)
-- will be evaluated to 0.16

ডক্স: http://www.w3resource.com/mysql/mathematical-funitions/mysql-round-function.php


2
আপনি truncateকাটা সংখ্যা চাইলে আপনার সংখ্যা ফর্ম্যাট করতে হবে use তিনি প্রশ্নে এটি পরিষ্কার করে দিয়েছিলেন যে এটিই তিনি যা করতে চেয়েছিলেন। রাউন্ডিংয়ের অনেকগুলি উপায় রয়েছে (তল, সিলিং, শূন্য থেকে দূরে, শূন্যের দিকে, হাফ-আপ, অর্ধ-ডাউন, অর্ধ-সম)। তারা বিভিন্ন প্রসঙ্গে উপযুক্ত।
কিপ

16
হ্যাঁ অবশ্যই, তবে আমি দেখতে পাচ্ছি অনেক লোক আমার উত্তরটি সহায়ক বলে মনে করেছিল বা তারা রাউন্ড কমান্ডের সন্ধান করার সময় তারা এই প্রশ্নটি খুঁজে পেয়েছিল। এটি যেমন আছে তেমনি রেখে দেব।
jmarceli

"সংখ্যার ফর্ম্যাট করতে আপনার ট্রানসেট ব্যবহার করা উচিত নয় কারণ আপনি কেবল ছাঁটাই অঙ্কগুলি হারাবেন" => আচ্ছা, এটি ছাঁটাইয়ের বিন্দু ... আমি কীভাবে ম্যাথের সাথে আমাদের 0.17 পেতে হবে তা দেখছি না। আপনার উত্তর প্রোগ্রামিং উদাহরণগুলির জন্য উপযুক্ত তবে এটি খুব সম্পূর্ণ নয়।
বেনোইট ডাফেজ

2
আমি আগে বলেন. আমি জানি যে এটি এই প্রশ্নের সঠিক উত্তর নয় তবে লোকেরা এটি পছন্দ করে থাকে :) সম্ভবত প্রশ্ন শিরোনামের কারণে যা ROUNDকার্যের জন্য অনুসন্ধান করছে তার অনুসন্ধানের ফলাফল হতে পারে ।
jmarceli

তারপরে আপনার এটি ঠিক করা উচিত। আমি এখনও সবার জন্য দরকারী হয়ে উঠব এবং এটি 100% সঠিক হবে। উইন-উইন :)
বেনোইট ডফেজ

14

CAST(2229.999 AS DECIMAL(6,2)) 2 দশমিক স্থান সহ দশমিক কীভাবে পাবেন


4
আমার মনে হয় আপনি castালাই বোঝাচ্ছেন (2229.999 দশমিক হিসাবে (4,2))
চাচা ইরোহ

@ উঙ্কলআইরোহ, না আমার মনে হয় তিনি আসলেই বোঝাতে চেয়েছিলেন convert(2229.999 as decimal(4,2))
পেসারিয়ার

3
@ পেসারিয়র - উভয়ই প্রযুক্তিগতভাবে কাজ করে। তবে রূপান্তরকরণের ফর্ম্যাটটি একটি কমা দিয়ে রূপান্তরিত হয়েছে (2229.999, দশমিক (4,2)), সুতরাং আপনি সম্ভবত ঠিক যে সে যাচ্ছিল সেটাই ঠিক।
চাচা ইরোহ

@ ইউনক্লিরোহ, আহ হ্যাঁ, আমার টাইপো উপরে। আমি কথা ছিল convert(2229.999, decimal(4,2))
পেসারিয়ার

4
CAST (2229.999 AS DECIMAL (4,2)) আপনাকে 99.99 দেবে। ডেসিমাল হ'ল দশমিক স্থানের বামে 2 সহ সর্বাধিক সংখ্যা । কাস্ট (2229.99 ডেসিমাল হিসাবে (6,2)) আপনাকে 2230.00
russjohnson09


0

এটি আমি উদাহরণস্বরূপ এটি ব্যবহার করেছি:

CAST(vAvgMaterialUnitCost.`avgUnitCost` AS DECIMAL(11,2)) * woMaterials.`qtyUsed` AS materialCost

0

দশমিক হিসাবে দেখান নির্বাচন করুন ifnull (ফর্ম্যাট (100.00, 1, 'en_US'), 0) 100.0

শতকরা হিসাবে নির্বাচন করুন কনক্যাট নির্বাচন করুন (ifnul (ফর্ম্যাট (100.00, 0, 'en_US'), 0), '%') 100%

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.